package com.fileLoader.dao;

import java.util.List;

import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;

import com.fileLoader.util.PagesInfo;

public interface mongoDao {
	
	/**
	 * 保存
	 * @param object
	 * @return
	 */
	public Object saveObject(Object object);
	/**
	 * 删除
	 * @param object
	 */
	public void removeObject(Object object);
	/**
	 * 根据主键删除对象
	 * @param id 主键id
	 * @param objString 表名
	 */
	public void removeObjectById(String id,String objString);
	/**
	 * 按条件删除对象
	 * @param query
	 * @param class1
	 */
	public void removeQuery(Query query,Class class1);
	/**
	 * 根据主键查对象
	 * @param id
	 * @param class1
	 * @return
	 */
	public Object getOne(String id,Class class1);
	/**
	 * 根据条件查对象
	 * @param query
	 * @param class1
	 * @return
	 */
	public List getListByQuery(Query query ,Class class1);
	
	/**
	 * 更新对象
	 * @param query 用来查找对象
	 * @param update更新内容 
	 * @param class1
	 */
	public void updateObjcet(Query query,Update update,Class class1);
	/**
	 * 分页
	 * @param pagesInfo
	 * @param query
	 * @return
	 */
	public PagesInfo pagesInfo(PagesInfo pagesInfo,Query query,Class class1);
	/**
	 *批量插入
	 * @param list
	 * @return
	 */
	public void saveAll(List list);
	/**
	 * 批量更新
	 * @param query
	 * @param update
	 * @param class1
	 */
    public void updateAll(Query query,Update update,Class class1);
    /**
     * 查询全部
     * @param class1
     * @return
     */
    public List findAll(Class class1);
    /**
     * 更新 
     * @param query
     * @param class1
     * @param update
     */
    public void update(Query query,Class class1,Update update);
}
